#!/usr/bin/perl

#  FILE:   deleteNode.pl
#  AUTHOR: Luis Valverde Garcia
#  DATE:   11/12/01
#  LAST CHANGE: 19/12/2001
#
#  DESCRIPTION: 
#  Programa de linea de comandos que borra un nodo de KnowCat. Esto comprende:
#   - borrar recursivamente su directorio
#   - borrar la base de datos asociada
#   - eliminar su entrada del fichero de configuracion de Apache
#  El programa supone que el directorio del nodo esta en /home/knowcat/

#  MEJORAS PENDIENTES:

if (scalar(@ARGV)!=2) {
	print "sintaxis: deleteNode.pl <directorio nodo> <nombre base de datos>\n";
	exit();
}

print "---> Borrado del nodo $ARGV[0] y su base de datos $ARGV[1] <---\n\n";
print "- borrando directorio del nodo recursivamente...\n";
print "confirme la ejecucion del comando 'rm -r /home/knowcat/$ARGV[0]' (s/n):";
$opcion=getc;
system("rm -r /home/knowcat/$ARGV[0]") if ($opcion eq 's');
print "- borrando base de datos...\n";
system("mysql -u knowcat -pmykc -e \"drop database $ARGV[1];\"");
print "- eliminando entrada de fichero de configuracion de Apache...\n";
open(ENTRADA,"</etc/httpd/conf/access_confs/knowcat.conf") or die "error al abrir knowcat.conf: $!";
open(SALIDA,">/etc/httpd/conf/access_confs/knowcat.conf.tmp") or die "error al crear knowcat.conf.tmp: $!";
while (<ENTRADA>) {
	if (/Alias\s\/$ARGV[0]\/\s"\/home\/knowcat\/$ARGV[0]\/"/) {
		while (<ENTRADA>) {
			if (/<\/Directory>/) {
				<ENTRADA>;
				last;
			}
		}
	}
	else {print SALIDA $_;}
}
system("mv /etc/httpd/conf/access_confs/knowcat.conf.tmp /etc/httpd/conf/access_confs/knowcat.conf");
system("chown knowcat:knowcat /etc/httpd/conf/access_confs/knowcat.conf");
print "\n---> Borrado del nodo finalizado <---\n";